Николай Степанов, директор департамента разработки ПО «Лестэр ИТ».
Компания «Лестэр ИТ» работает на российском рынке с 1996 года и занимается разработкой ИТ-решений для автоматизации грузовых железнодорожных перевозок и сферы ЖКХ. В команде более 50 человек. Основной офис находится в Москве, также есть сотрудники в Крыму и Казахстане. Основные продукты: ИРС «Перевозки» и ИРЦ «ЖКХ». Мы развиваем ИРС «Перевозки» уже более 20 лет и последний год мы трансформировали ее в специализированную железнодорожную ИТ-платформу, на базе которой можно создавать проекты и приложения самостоятельно, без участия «Лестэр ИТ».
В ядре ИРС «Перевозки» собрано большое количество специализированных железнодорожных объектов, далее идет слой сценариев и процедур, реализующих ключевую бизнес-логику транспортных компаний, и, наконец, для создания интерфейсов десктопных приложений и веб-сервисов мы сделали и продолжаем развивать системное API и высокоуровневое прикладное REST API. Уже доступно более 250 методов работы с данными.
Разработка в «Лестэр ИТ» ведется на Delphi, VBScript, C# и TypeScript. Delphi используется исторически для разработки настольного приложения. VBScript — для написания скриптов, обеспечивающих взаимодействие с другими системами нашей предметной области, а также для скриптов импорта и экспорта информации. C# мы используем для разработки RESTful API системы и для полномасштабного прикладного API нашей системы нового поколения, который позволит создавать новое настольное приложение. TypeScript в связке с C# используется для создания портальных решений. Различные утилиты, стоящие в стороне от основного направления нашей работы, могут быть написаны на JavaScript и платформе Node JS. Раньше мы работали на C++ и Java, но отказались от них.
Основной принцип, по которому мы выбираем язык программирования или технологию, — решить стоящие прикладные задачи как можно более простым способом, сохранив возможность интеграции с ранее созданными частями системы.
Отказ от использования того или иного языка чаще всего обусловлен невозможностью его использования для системы целиком или большого ее блока, что в конечном счете ведет к усложнению поддержки решения и к большим затратам. Мы регулярно мониторим рынок технологий и новых языков с целью технологического развития нашего решения. Это позволяет критически оценивать используемые технологии и при необходимости переосмысливать подход к разработке.
В настоящий момент мы активно используем программные платформы .NET Framework, .NET Core, СУБД MSSqlServer и Mongo DB и прикладные фреймворки EntityFramework, Dapper, xUnit, Windows Forms и Windows Presentation Foundation.
Наши портальные решения построены на продуктах компании Microsoft — ASP (в прошлом), ASP.NET и MVC и на продукте команды разработчиков Google — фреймворке Angular (сейчас это Angular 9). Angular самодостаточен для разработки приложений и глубоко интегрирован с серверной средой разработки .NET Core, что позволяет использовать стандартные средства разработки компании Microsoft, такие как MS Visual Studio, MS Visual Studio Code и другие.
При выборе фреймворков мы анализируем возможности решения наших задач, оцениваем трудоемкость использования, стабильность платформы, а также перспективы ее развития и совершенствования.
Структурно департамент разработки компании «Лестэр ИТ» состоит из трех отделов: отдел разработки БД, отдел прикладных систем и отдел разработки веб-решений. В зону ответственности отдела разработки БД входит реализация бизнес-логики решений, отдел прикладных систем разрабатывает настольное приложение, прикладное API системы и RESTful API, вебовцы работают над клиентскими порталами.
Для обеспечения процесса разработки мы используем информационную систему Kaiten.io, построенную по методологии «канбан». У каждого разработчика есть своя персональная доска с планируемыми и выполненными задачами, кроме того, в системе есть общие доски отделов и проектов. Помимо разработчиков в Kaiten.io работают и аналитики, и специалисты по тестированию. Руководитель проекта может поставить задачу в очередь как непосредственно конкретному разработчику, если он считает, что именно этот специалист справится с ней лучше всех, так и опубликовать задачу на общей доске отдела, тогда ее возьмет в работу первый освободившийся разработчик. Выполненные задачи переходят на доски специалистов по тестированию. В качестве системы управления версий используются Git (Gitlab) и SVN, которые для обеспечения прозрачности плотно заинтегрированы с Kaiten.io.